package com.softtown.modules.workflow.entity;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.softtown.common.entity.BaseEntity;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.util.Date;

/**
 * @author: Dingyayong
 * @Date: 2019/8/12 16:17
 * @Description: 审批履历实体类
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("swf_hst_aprv")
public class SwfHstAprvEntity extends BaseEntity {
    private static final long serialVersionUID = 1L;

    /**
     * 所属公司id
     */
    private Long compId;

    /**
     * 流程实例id
     */
    private Long procInstId;

    /**
     * 申请单id
     */
    private Long applId;

    /**
     * 申请提交时间/审批时间
     */
    private Date dealDate;

    /**
     * 审批段名称
     */
    private String phaseName;

    /**
     * 提交人id/审批人id
     */

    private Long dealUserId;
    /**
     * 申请人/审批人员工姓名
     */
    private String dealEmplName;
    /**
     * 申请人/审批人部门名称
     */
    private String dealDeptName;
    /**
     * 申请人/审批人岗位名称
     */
    private String dealPosnName;
    /**
     * 申请/审批代理人员工姓名
     */
    private String dealAgentEmplName;

    /**
     * 工作流操作区分 1:提交申请 2:撤销申请 3：审批(同意) 4:审批(拒绝) 5:审批(退回）  6：终止
     */
    private Integer dealType;
    /**
     * 审批任务id
     */
    private Long aprvTaskId;

    /**
     * 审批结果（最终）1：同意 2：拒绝 3：退回
     */
    private Integer aprvResult;
    /**
     * 审批意见
     */
    private String aprvComment;

    /**
     * 自己是否为段终审默认值 null：不是   1：是
     */
    private Integer isPhaseLastAprv;

    /**
     * 是否为终审默认值 null：不是   1：是
     */
    private Integer isLastAprv;

    /**
     * 更新者
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long updater;

    /**
     * 更新时间
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateDate;

    /**
     * 更新时间的时间戳
     */
    private String updateTimestamp;

    /**
     * 逻辑删除 0：未删除   NULL：已删除
     */
    private Integer isDeleted;

    /**
     * 区别名
     */
    @TableField(exist = false)
    private String dealTypeName;
}
